import request from '@/utils/request'

// 查询产品列表
export function listProduct(query) {
  return request({
    url: '/iot/product/list',
    method: 'get',
    params: query
  })
}
// 无分页查询产品列表
export function queryProduct(query) {
  return request({
    url: '/iot/product/query',
    method: 'get',
    params: query
  })
}

// 查询产品详细
export function getProduct(id) {
  return request({
    url: '/iot/product/' + id,
    method: 'get'
  })
}

// 新增产品
export function addProduct(data) {
  return request({
    url: '/iot/product',
    method: 'post',
    data: data
  })
}

// 修改产品
export function updateProduct(data) {
  return request({
    url: '/iot/product',
    method: 'put',
    data: data
  })
}

// 删除产品
export function delProduct(id) {
  return request({
    url: '/iot/product/' + id,
    method: 'delete'
  })
}

// 导出产品
export function exportProduct(query) {
  return request({
    url: '/iot/product/export',
    method: 'get',
    params: query
  })
}

// 获取单位数据
export function getUnits() {
  return request({
    url: '/iot/product/units',
    method: 'get'
  })
}

// 获取产品需要的配置定义信息
export function getConfigMetadata(id) {
  return request({
    url: '/iot/product/config-metadata/' + id,
    method: 'get'
  })
}

// 发布产品
export function deployProduct(id) {
  return request({
    url: '/iot/product/deploy/' + id,
    method: 'post'
  })
}

// 取消发布产品
export function undeployProduct(id) {
  return request({
    url: '/iot/product/undeploy/' + id,
    method: 'delete'
  })
}

// 重置产品认证配置
export function updateConfiguration(productId, configuration) {
  return request({
    url: '/iot/product/configuration/' + productId,
    method: 'put',
    data: configuration
  })
}

// 更新协议支持
export function updateProtocolStandby(productId, configuration) {
  return request({
    url: '/iot/product/protocol-standby/' + productId,
    method: 'put',
    data: configuration
  })
}
